package com.woniuxy.amusementparkos.service.wyh;

import java.util.List;

import org.springframework.web.multipart.MultipartFile;

import com.woniuxy.amusementparkos.entity.lsy.WristStarp;
import com.woniuxy.amusementparkos.entity.wyh.WristStrap_Repository;
import com.woniuxy.amusementparkos.entity.wyh.WristStrap_msg;

public interface WristStrap_RepositoryService {
	// 根据腕带编号查询腕带
	WristStrap_Repository getWristStrap(String wriststrap_id);

	// 查询所有腕带信息
	List<WristStrap_Repository> selectAll();

	// 根据腕带编号修改腕带状态

	void updateState(String wriststrp_id, Integer state);
	
	/**
	 * 通过腕带类型，查询仓库中该类型腕带的条数
	 * @param type_id
	 * @return
	 * @author Muzi 2020年4月28日21:25:28
	 */
	Integer countWristStrapByType(Integer type_id);
	
	//根据腕带编号查询非结算状态的腕带常用信息;
	WristStrap_msg getBywriststrp_id(String wriststrp_id);
	
	
	// 以下是Muzi添加
	
	/**
	 * 修改腕带信息
	 * @param wristStrap_Repository
	 */
	void updateWristStrap(WristStrap_Repository wristStrap_Repository);
	/**
	 * 通过腕带id删除腕带，调用前必须检查腕带状态，必须为
	 * @param wriststrp_id
	 */
	void deleteWristStrap(String wriststrp_id);
	
	/**
	 *  添加腕带到腕带仓库
	 * @param wristStrap_Repository
	 */
	void insertWristStrap(WristStrap_Repository wristStrap_Repository);
	
	/**
	 * 分页查询腕带仓库的腕带
	 * @param page 当前页
	 * @param limit 页大小
	 * @return
	 */
	List<WristStrap_Repository> selectAllByPageAndLimit(Integer page,Integer limit);
	
	/**
	 *  通过带条件的模糊查询
	 * @param condition 查询条件值
	 * @param page
	 * @param limit
	 * @return
	 */
	List<WristStrap_Repository> selectAllByPageAndCondition(String condition,Integer page,Integer limit);
	
	/**
	 * 通过类型查询所有腕带
	 * @param type_id 类型编号
	 * @param page 目标页码
	 * @param limit 页大小
	 * @return
	 */
	List<WristStrap_Repository> selectAllByPageAndType(Integer type_id,Integer page,Integer limit);

	/**
	 * 查询无条件时的总条数
	 * @return
	 */
	Long countWristStrapsByNoCondition();

	/**
	 * 带条件模糊查询，总条数计数
	 * @param condition
	 * @return
	 */
	Long countWristStrapsByCondition(String condition);

	/**
	 * 通过类型查询的总条数
	 * @param type_id
	 * @return
	 */
	Long countByType(Integer type_id);

	/**
	 * 按类型和条件模糊查询
	 * @param type_id
	 * @param condition
	 * @param page
	 * @param limit
	 * @return
	 */
	List<WristStrap_Repository> selectAllByPageAndConditionAndType(Integer type_id, String condition, Integer page,
			Integer limit);

	/**
	 * 按条件和类型模糊查询计数
	 * @param condition
	 * @param type_id
	 * @return
	 */
	Long countWristStrapsByConditionAndType(String condition, Integer type_id);

	/**
	 * 批量上传操作腕带操作
	 * @param fileName
	 * @param file
	 * @return
	 */
	List<WristStarp> batchImport(String fileName, MultipartFile file) throws Exception;

	// 批量删除
	void deleteWristStrapList(String[] wriststrp_id);

	
}
